import MarkdownIt from 'markdown-it';
import markdownItKatex from '@vscode/markdown-it-katex'; // 公式
import markdownItDiagram from 'markdown-it-diagram'; // 绘制图表和流程图

import hljs from 'highlight.js'; // 使用 highlight.js 替代 prism
import 'katex/dist/katex.min.css'; // 引入 KaTeX 的 CSS 文件
import 'highlight.js/styles/github-dark.css'; // // 引入 Prism.js 或 highlight.js 的主题样式（这里以 highlight.js 为例）
// console.log('markdownItKatex', markdownItKatex)
// 创建 MarkdownIt 实例
export const markdownLib = MarkdownIt({
  html: true, // 启用 HTML 标签解析
  linkify: true, // 自动识别链接
  typographer: true, // 改进排版
  highlight: function (str, lang) {
      if (lang && hljs.getLanguage(lang)) {
        try {
          return hljs.highlight(str, { language: lang }).value;
        } catch (__) {}
      }
      return ''; // 如果语言不支持，则返回空字符串
    }
})
  
  .use(markdownItKatex, { throwOnError: false, errorColor: "#cc0000" }) // 添加 KaTeX 数学公式支持
  .use(markdownItDiagram) // 添加流程图支持
// 导出 Markdown 解析器
export default markdownLib;